package com.example.tpl.system.service;

import java.util.List;

import com.example.tpl.system.util.Result;
import com.example.tpl.system.vo.common.DeleteReqVo;
import com.example.tpl.system.vo.common.QueryDetailReqVo;
import com.example.tpl.system.vo.common.UpdateStatusReq;
import com.example.tpl.system.vo.req.DeptReqVo;
import com.example.tpl.system.vo.req.QueryDeptReqVo;
import com.example.tpl.system.vo.resp.DeptRespVo;

/**
 * 描述：部门
 * 作者：刘飞华
 * 日期：2025/01/13 17:57:36
 */
public interface DeptService {

    /**
     * 添加部门
     *
     * @param dept 请求参数
     * @return int
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<Integer> addDept(DeptReqVo dept);

    /**
     * 删除部门
     *
     * @param dept 请求参数
     * @return int
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<Integer> deleteDept(DeleteReqVo dept);

    /**
     * 更新部门
     *
     * @param dept 请求参数
     * @return int
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<Integer> updateDept(DeptReqVo dept);

    /**
     * 更新部门状态
     *
     * @param dept 请求参数
     * @return int
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<Integer> updateDeptStatus(UpdateStatusReq dept);

    /**
     * 查询部门详情
     *
     * @param dept 请求参数
     * @return DeptResp
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<DeptRespVo> queryDeptDetail(QueryDetailReqVo dept);

    /**
     * 查询部门列表
     *
     * @param dept 请求参数
     * @return ResultPage<DeptResp>
     * @author 刘飞华
     * @date: 2025/01/13 17:57:36
     */
    Result<List<DeptRespVo>> queryDeptList(QueryDeptReqVo dept);

}